package com.ruoyi.ichen.rabbitmq;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.ruoyi.ichen.rabbitmq.common.RabbitMQUtils;
import org.junit.Test;

/**
 * @author ichen
 * @version V1.0
 * @ClassName: Provider
 * @Description: rabbitmq创建连接和发送 ---生产者
 * @Date 2020/7/26 11:52
 */
public class Provider {

    @Test
    public void testSendMessage(){
        try {
            //获取连接对象
            Connection connection = RabbitMQUtils.getConnection();
            //获取连接通道
            Channel channel = connection.createChannel();
            //通道绑定对应消息队列
            //参数1 队列名称，如果队列不存在自动创建
            //参数2 用来敌营队列特性是否要持久化,true持久化队列， false 不持久化
            //参数3 exclusive 是否独占队列 true 独占队列
            //参数4 autoDelete 是否在消费完成后自动删除队列, true 自动删除
            channel.queueDeclare("hello",false,false,false,null);
            //发布消息
            //参数1 交换机名称 参数2 队列名称 参数3 传递消息额外设置 参数4 消息的具体内容
            channel.basicPublish("","hello",null,"hello rabbitmq".getBytes());
            //关闭连接
            RabbitMQUtils.closeConnectionAndChannel(channel,connection);

        } catch (Exception e) {
            e.printStackTrace();
        }


    }

}
